Data communication system, data communication management device and method, and computer program

ABSTRACT

An apparatus and a method for performing data transfer that can ensure QoS of data transmitted and received are provided. IEEE802.1p priority tags as priority identifiers are set under control of a tag managing terminal. A priority tag is set for a data flow to be subjected to priority processing, for example, to be guaranteed QoS so as to prevent duplicate use of a queue in a communication control apparatus such as a switch or the like connected to a network. The tag managing terminal for example converts a queue use state in intra-subnetwork communication into a table, and retains the table. In response to a queue request from each terminal, the tag managing terminal refers to the table and then assigns a tag. The communication control apparatus such as the switch or the like that executes data transfer control prevents duplicate queue generation for data flows to be subjected to priority processing only by processing using the priority table associating tags with queues.

TECHNICAL FIELD

The present invention relates to a data communication system, anapparatus and a method for data communication control, and a computerprogram, and particularly to a data communication system, an apparatusand a method for data communication control, and a computer program thatexecute improved flow control at interconnected network apparatus inIEEE802.3.

BACKGROUND ART

Recently, data transfer via various communication networks has beenactively performed. Various information processing apparatus andcommunication apparatus such as PCs, workstations, PDAs, portableterminals and the like are connected to each other via networks for datacommunication. As a protocol for interconnecting these variouscommunication apparatus and performing communication processing, thereis a TCP/IP protocol, for example. The TCP/IP protocol allows a positionof a communication terminal on a network to be identified using an IPaddress, which is a logical address. Further, a MAC address (Ethernetaddress) for identifying each information processing apparatus orcommunication terminal itself ensures uniqueness of each informationprocessing apparatus within a network, thus enabling communication ofdata packets (or frames) between terminals via the network.

The MAC address is formed by a total of six bytes including three bytesassigned to a hardware manufacturer and three bytes assigned to eachapparatus. The MAC address is managed by the IEEE (The Institute ofElectrical and Electronics Engineers, Inc.), and is set as an addressunique to each apparatus.

There has recently been a desire for a high value added type networksuch as provides QoS (Quality of Service) that guarantees quality ofdata transferred on a network or CoS (Class of Service). Realizing realtime reproduction in moving picture distribution, for example, requirestransmission of packets constituting a moving picture to a destinationapparatus without delay. On the other hand, some data packets tolerate atemporal delay. Thus, in packet processing on a network, it has becomenecessary to determine processing priority of each packet and thenperform the processing.

One processing apparatus for providing QoS, that is, ensuring quality ofdata transfer in a unit of data flow, that is, a unit of data flowidentified by a transmission source address and a transmissiondestination address is a data transfer control apparatus such as arouter, a switch or the like connected on a network.

In providing QoS in a flow unit, such a data transfer control apparatus,that is, a network apparatus such as a router, a switch or the likegenerally not only checks a transmitter address/receiver address of anIP packet but also checks a port number included in TCP or UDP headerinformation, thereby determines which packet belongs to which flow, andexecutes priority control processing according to the flow identified bythe port number.

However, the IP packet may be fragmented, that is, divided into aplurality of packets, and it is not necessarily true that all thedivided packets include the TCP or UDP port number. Therefore it is noteasy to identify a data flow by checking a TCP or UDP port number.

Furthermore, since an IP header has a variable length, each packet mayhave a different number of bytes included from a head of the packet to aTCP or UDP port number. Thus, even in the case of a switch that executescontrol in a layer 2 (data link layer) in an ISO reference model,identifying a data flow by checking a TCP or UDP port number requiresreconstruction of a data frame of a layer 3 (network layer, IP layer)and a layer 4 (transport layer, TCP/UDP layer). Therefore providing QoSin a flow unit requires a large amount of calculation.

Thus, data transfer control based on a port number as TCP or UDP headerinformation increases a time required for processing and causes a delayin data transfer instead, thus making real time reproduction difficult,for example. Therefore QoS provision is made difficult.

DISCLOSURE OF INVENTION

The present invention has been made in view of the above problems, andit is accordingly an object of the present invention to provide a datacommunication system, an apparatus and a method for data communicationcontrol, and a computer program that make it possible to efficientlyexecute data transfer control in flow units according to priority at adata transfer control apparatus such as a switch, a router, a hub or thelike connected on a network by setting a tag managing terminal forperforming priority tag assignment processing.

According to a first aspect of the present invention, there is provideda data communication system for executing data communication control viaa network, the data communication system including: a tag managingterminal apparatus for assigning a priority tag as information to beadded to a data frame in response to a tag assignment request from adata transmission source terminal; a data transmission terminal fortransmitting the data frame in which the priority tag assigned by thetag managing terminal apparatus is set as the information added to thedata frame; and a data communication control apparatus for identifying adata flow on a basis of the priority tag as the information added to thedata frame received from the data transmission source terminal, storingthe data frame in a queue selected in correspondence with the identifieddata flow, and outputting the data frame stored in the queue accordingto a predetermined schedule.

Further, in one embodiment of the data communication system according tothe present invention, the tag managing terminal apparatus has a queueuse state table that associates a data communication destination nodeidentifier, a data transmission source node identifier, and a queueidentifier in the data communication control apparatus with each other,and which enables determination of a state of use of queues in the datacommunication control apparatus within the managed network; and inresponse to the request from the data transmission source terminal, thetag managing terminal apparatus refers to the queue use state table, andsets a priority tag corresponding to a queue different from a used queueas the assigned tag.

Further, in one embodiment of the data communication system according tothe present invention, the tag managing terminal apparatus has prioritytable information associating priority tags with output queues, thepriority table information being retained by the communication controlapparatus within the managed network; and the tag managing terminalapparatus extracts a priority tag that can be set in correspondence witha queue selected in the queue use state table on a basis of a prioritytable, and sets the extracted priority tag as the assigned tag.

Further, in one embodiment of the data communication system according tothe present invention, the tag assignment request from the datatransmission source terminal includes a data communication destinationnode identifier and a data transmission source node identifier; and on abasis of the data communication destination node identifier and the datatransmission source node identifier included in the tag assignmentrequest, the tag managing terminal apparatus refers to the queue usestate table, and sets a priority tag corresponding to a queue differentfrom a used queue as the assigned tag.

Further, in one embodiment of the data communication system according tothe present invention, the data frame transmitted by the datatransmission source terminal is a data frame defined in IEEE802.3; andthe data communication control apparatus identifies the data flow on abasis of a priority tag stored in the IEEE802.3 data frame.

Further, according to a second aspect of the present invention, there isprovided a data communication managing apparatus for executing datacommunication control processing via a network, wherein a priority tagas information to be added to a data frame is assigned in response to atag assignment request from a data transmission source terminal.

Further,. in one embodiment of the data communication managing apparatusaccording to the present invention, the data communication managingapparatus has a queue use state table that associates with each other adata communication destination node identifier, a data transmissionsource node identifier, and a queue identifier in a data communicationcontrol apparatus for executing data transfer control within thenetwork, and which enables determination of a state of use of queues inthe data communication control apparatus within the managed network; andin response to the request from the data transmission source terminal,the data communication managing apparatus refers to the queue use statetable, and sets a priority tag corresponding to a queue different from aused queue as the assigned tag.

Further, in one embodiment of the data 6communication managing apparatusaccording to the present invention, the data communication managingapparatus has priority table information associating priority tags withoutput queues, the priority table information being retained by thecommunication control apparatus within the managed network; and the datacommunication managing apparatus extracts a priority tag that can be setin correspondence with a queue selected in the queue use state table ona basis of a priority table, and sets the extracted priority tag as theassigned tag.

Further, in one embodiment of the data communication managing apparatusaccording to the present invention, on a basis of a data communicationdestination node identifier and a data transmission source nodeidentifier included in the tag assignment request, the datacommunication managing apparatus refers to the queue use state table,and sets a priority tag corresponding to a queue different from a usedqueue as the assigned tag.

Further, in one embodiment of the data communication managing apparatusaccording to the present invention, the data frame transmitted by thedata transmission source terminal is a data frame defined in IEEE802.3;and the data communication managing apparatus sets a priority tag to beset in the IEEE802.3 data frame as the assigned tag.

Further, according to a third aspect of the present invention, there isprovided a data communication control method for executing datacommunication control via a network, the data communication controlmethod including: a tag assigning step in a tag managing terminalapparatus for assigning a priority tag as information to be added to adata frame in response to a tag assignment request from a datatransmission source terminal; a data transmitting step in a datatransmission source terminal for transmitting the data frame in whichthe priority tag assigned in the tag assigning step is set as theinformation added to the data frame; and a data communication controlstep in a data communication control apparatus for identifying a dataflow on a basis of the priority tag as the information added to the dataframe received from the data transmission source terminal, storing thedata frame in a queue selected in correspondence with the identifieddata flow, and outputting the data frame stored in the queue accordingto a predetermined schedule.

Further, in one embodiment of the data communication control methodaccording to the present invention, on a basis of a queue use statetable that associates a data communication destination node identifier,a data transmission source node identifier, and a queue identifier inthe data communication control apparatus with each other, and whichenables determination of a state of use of queues in the datacommunication control apparatus within the managed network, the tagassigning step in the tag managing terminal apparatus sets a prioritytag corresponding to a queue different from a used queue as the assignedtag in response to the request from the data transmission sourceterminal.

Further, in one embodiment of the data communication control methodaccording to the present invention, on a basis of priority tableinformation associating priority tags with output queues, the prioritytable information being retained by the communication control apparatuswithin the managed network, the tag assigning step in the tag managingterminal apparatus extracts a priority tag that can be set incorrespondence with a queue selected in the queue use state table, andsets the extracted priority tag as the assigned tag.

Further, in one embodiment of the data communication control methodaccording to the present invention, the tag assignment request from thedata transmission source terminal includes a data communicationdestination node identifier and a data transmission source nodeidentifier; and on a basis of the data communication destination nodeidentifier and the data transmission source node identifier included inthe tag assignment request, the tag assigning step in the tag managingterminal apparatus refers to the queue use state table, and sets apriority tag corresponding to a queue different from a used queue as theassigned tag.

Further, in one embodiment of the data communication control methodaccording to the present invention, the data frame transmitted by thedata transmission source terminal is a data frame defined in IEEE802.3;and the data communication control step in the data communicationcontrol apparatus identifies the data flow on a basis of a priority tagstored in the IEEE802.3 data frame.

Further, according to a fourth aspect of the present invention, there isprovided a data communication managing method for executing datacommunication control processing via a network, the data communicationmanaging method characterized in that a tag assigning process forassigning a priority tag as information to be added to a data frame isperformed in response to a tag assignment request from a datatransmission source terminal.

Further, in one embodiment of the data communication managing methodaccording to the present invention, referring to a queue use state tablethat associates with each other a data communication destination nodeidentifier, a data transmission source node identifier, and a queueidentifier in a data communication control apparatus for executing datatransfer control within the network, and which enables determination ofa state of use of queues in the data communication control apparatuswithin the managed network, the tag assigning process sets a prioritytag corresponding to a queue different from a used queue as the assignedtag in response to the request from the data transmission sourceterminal.

Further, in one embodiment of the data communication managing methodaccording to the present invention, referring to priority tableinformation associating priority tags with output queues, the prioritytable information being retained by the communication control apparatuswithin the managed network, the tag assigning process extracts apriority tag that can be set in correspondence with a queue selected inthe queue use state table, and sets the extracted priority tag as theassigned tag.

Further, in one embodiment of the data communication managing methodaccording to the present invention, on a basis of a data communicationdestination node identifier and a data transmission source nodeidentifier included in the tag assignment request, the tag assigningprocess refers to the queue use state table, and sets a priority tagcorresponding to a queue different from a used queue as the assignedtag.

Further, in one embodiment of the data communication managing methodaccording to the present invention, the tag assigning process sets apriority tag to be set in an IEEE802.3 data frame as the assigned tag.

Further, according to a fifth aspect of the present invention, there isprovided a computer program as a program for executing datacommunication control processing via a network, the computer programincluding: a step for receiving a tag assignment request from a datatransmission source terminal; a step for referring to a queue use statetable that associates with each other a data communication destinationnode identifier, a data transmission source node identifier, and a queueidentifier in a data communication control apparatus for executing datatransfer control within the network; and a step for setting a prioritytag corresponding to a queue different from a used queue as an assignedtag on a basis of data stored in the queue use state table.

The computer program according to the present invention can be providedin a computer readable form to a general-purpose computer system capableof executing various program codes, for example, by a storage medium ora communication medium, for example a CD, an FD, an MO or anotherstorage medium, or a network or another communication medium. Byproviding such a program in a computer readable form, processing inaccordance with the program is realized on the computer system.

Other and further objects, features, and advantages of the presentinvention will become apparent from more detailed description on thebasis of an embodiment of the present invention and accompanyingdrawings to be described later. It is to be noted that a system in thepresent specification-is a logical set configuration of a plurality ofapparatus, and that each component apparatus is not necessarily withinan identical housing.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram showing a system configuration of a datacommunication control apparatus (switch);

FIG. 2 is a diagram showing an example of network configuration in whicha data communication control system according to the present inventionoperates;

FIG. 3 is a diagram of assistance in explaining examples of structure ofIEEE802.1p data frames to be controlled in the data communicationcontrol system according to the present invention;

FIG. 4 is a diagram showing an example of structure of a MAC table;

FIG. 5 is a diagram showing an example of structure of a priority table;

FIG. 6 is a diagram showing an example of configuration of a transferqueue;

FIG. 7 is a flowchart of assistance in explaining a data communicationcontrol procedure in a data communication control apparatus;

FIG. 8 is a diagram showing an example of communication processing inthe network configuration in which the data communication control systemaccording to the present invention operates;

FIG. 9 is a diagram showing an example of communication processing inthe network configuration in which the data communication control systemaccording to the present invention operates;

FIG. 10 is a diagram of assistance in explaining information retained bya tag managing terminal;

FIG. 11 is a flowchart of assistance in explaining processing of aterminal that makes a tag assignment request;

FIG. 12 is a flowchart of assistance in explaining processing of the tagmanaging terminal that performs tag assignment processing;

FIG. 13 is a diagram showing an example of a queue use state tableretained by the tag managing terminal that performs tag assignmentprocessing;

FIG. 14 is a diagram showing an example of communication processing inthe network configuration in which the data communication control systemaccording to the present invention operates;

FIG. 15 is a diagram showing an example of a queue use state tableretained by the tag managing terminal that performs tag assignmentprocessing;

FIG. 16 is a diagram showing an example of communication processing inthe network configuration in which the data communication control systemaccording to the present invention operates; and

FIG. 17 is a diagram showing a configuration of a transfer queue in adata communication control apparatus.

BEST MODE FOR CARRYING OUT THE INVENTION

A configuration of the present invention will hereinafter be describedwith reference to the drawings.

[Processing in IEEE802.1p]

Description will first be made of a common method for implementingIEEE802.1p as a communication standard to which the communicationcontrol configuration of the present invention is applied. FIG. 1 is ablock diagram of a data transfer control apparatus connected to anetwork in compliance with IEEE802.1p.

A procedure for data transfer control in the data transfer controlapparatus shown in FIG. 1 is performed according to a processingprocedure from (1) to (6) to be described below.

(1) A data frame (or a data packet) received by an interface (PHY) 101is sent to a control unit (MAC address processing unit) 102.

(2) The control unit (MAC address processing unit) 102 extracts headerinformation from the received data frame, and then sends the data frameto a flow identification processing unit (Forwarder) 103.

(3) The flow identification processing unit (Forwarder) 103 determines anetwork interface for an output destination and an input queue on thebasis of values in a MAC table 104 and a priority table 105, and thensends the result to the control unit (MAC address processing unit) 102.

(4) The control unit (MAC address processing unit) 102 stores (enqueues)the received data frame in a specified queue in a transfer queue 106according to the determined information of the flow identificationprocessing unit (Forwarder) 103.

(5) A transmission queue is determined according to an IEEE802.1ppriority tag or a specified parameter value of a scheduler 107 set inadvance, the data frame is extracted from the selected queue, and thenthe data frame is sent from the transfer queue 106 to the control unit(MAC address processing unit) 102.

(6) The control unit (MAC address processing unit) 102 sends the dataframe to the interface (PHY) 101.

FIG. 2 shows an example of configuration of a network having switches asthe data transfer control apparatus performing the above-describedprocessing procedure.

In the network configuration of FIG. 2, a terminal X 211, a terminal Y212, and a terminal Z 213 as communication terminal apparatus areconnected to ports of a switch 0, 201 as a data communication controlapparatus, and a terminal A 231, a terminal B 232, and a terminal C 233as a plurality of communication terminal apparatus are connected toports of a switch 1, 221 connected to a port of the switch 0, 201. Theterminals are connected to each other via the switches to communicatewith each other.

The switch 0, 201 and the switch 1, 221 have the above-describedconfiguration of FIG. 1, and control transfer of data frames transmittedand received between the terminals.

FIG. 3 shows structures of a data frame transmitted and received betweenthe terminals. FIG. 3(a) shows the structure of an Ethernet data framewithout a priority tag. FIG. 3(b) shows the structure of an Ethernetdata frame having a priority tag. Ethernet data frames having a prioritytag shown in FIG. 3(b) are applied in data communication controlaccording to the present invention.

The Ethernet data frame shown in FIG. 3(a) has a destination MAC address(six bytes) as an apparatus-unique address corresponding to an apparatusat a data transmission destination, a source MAC address (six bytes) asan address unique to an apparatus as a data transmission source, a typefield (two bytes) for recording for example a type of processing of datastored in the data frame, a data field (a maximum of 1500 bytes) forstoring data, a message or the like of an upper layer, and a CRC (fourbytes) as a redundant code.

The Ethernet data frame shown in FIG. 3(b) has a tag protocol ID (TPID)as an identifier of a tag protocol and tag control information (TCI) inaddition to the above-mentioned fields. The tag control information hasa priority (three bits) as priority information, a flag (one bit)indicating whether or not routing control information (E-RIF: EmbeddedRouting Information Field) is included within a tag header, and anidentifier (VLANID) (12 bits) of a virtually constructed LAN (VirtualLAN).

The priority (three bits) as priority information is three-bitinformation that can be set arbitrarily by a data frame transmissionsource. Eight priorities 0 [000] to 7 [111] can be set.

The switch 0, 201 as a communication control apparatus shown in FIG. 2has a MAC table shown in FIG. 4 and a priority table shown in FIG. 5,for example. As shown in FIG. 4, the MAC table is applied to determinean output port on the basis of a destination MAC address stored in adata frame, and is thus formed as a table associating destination MACaddresses with output ports.

The priority table is applied to determine an output queue on the basisof a tag stored in a data frame, and is thus formed as a tableassociating tags with queues, as shown in FIG. 5.

In a general method of generating the MAC table shown in FIG. 4,processing of automatically learning addresses and generating entries tobe stored in the table is performed by the communication controlapparatus itself, whereby table data generation processing is performed.However, the MAC table may be set in advance by a user.

As indicated in the MAC table shown in FIG. 4, a network interface foran output destination (output port: OutPort) is determined uniquely fora destination MAC address (DstMAC). It is not guaranteed, however, thata destination MAC address is determined uniquely on the basis of anoutput port. For example, in the case of the network configuration shownin FIG. 2 in which the output port 2 of the switch 0, 201 is connectedwith the plurality of terminals A to C via the other switch 1, 221, aplurality of destination MACs (A, B, and C) are outputted to one outputport. In such a configuration, a network interface for an outputdestination (output port: OutPort) is determined uniquely for adestination MAC address (DstMAC), while a plurality of destination MACaddresses (DstMACs) are set for an output port.

The priority table shown in FIG. 5 is applied to determine an inputqueue on the basis of a tag stored in a data frame, and is thus a tableassociating tags with queues. As described with reference to FIG. 3, anIEEE802.1P Ethernet data frame stores three-bit priority data, which canassume a value of 0 [000] to 7 [111].

It is not necessarily required that a different queue be provided foreach priority in the priority table. For example, arbitrarycorrespondences can be set by assigning a queue 0 to tags 0 to 2,assigning a queue 1 to tags 3 to 5, and assigning a queue 3 to tags 6and 7 as in the table shown in FIG. 5. The correspondences between thepriorities and the queue numbers may be set by fixed values provided inadvance, or may be set by a user.

FIG. 6 shows an example of configuration of a transfer queue(corresponding to the transfer queue 106 in FIG. 1) possessed by aswitch as a communication control apparatus. In the example of FIG. 6,the transfer queue has three queues, that is, a queue #0, 320, a queue#1, 321, and a queue #2, 322. However, the number of queues can be setarbitrarily.

A data frame is inputted into the transfer queue as processing in whichas described earlier with reference to FIG. 1, the flow identificationprocessing unit (Forwarder) 103 determines a network interface for anoutput destination and an input queue on the basis of values in the MACtable 104 and the priority table 105, and then sends the result to thecontrol unit (MAC address processing unit) 102, and the control unit(MAC address processing unit) 102 stores (enqueues) a received dataframe in a specified queue in the transfer queue 106 according to thedetermined information of the flow identification processing unit(Forwarder) 103.

In FIG. 6, an input selector 301 selects one of the three queues, thatis, the queue #0, 320, the queue #1, 321, and the queue #2, 322 intowhich to input (enqueue) a data frame (packet) with reference to apriority table 302. Incidentally, a flow identification processing unit(Forwarder) 303 may refer to the priority table 302 so that the inputselector 301 inputs (enqueues) input packets into queues on the basis ofinput queue information determined by the flow identification processingunit (Forwarder) 303.

An output selector 311 sends a queue state indicating how many dataframes (packets) are in which queue, for example, to a scheduler 312.The scheduler 312 sequentially determines a next output queue accordingto a preset algorithm, and notifies this to the output selector 311. Theoutput selector 311 extracts a data frame (packet) from the queuespecified by the scheduler 312, and then outputs the data frame (packet)via the interface 101 under control of the control unit 102 (see FIG.1).

Algorithms applicable for selecting an output queue include for examplean algorithm that does not select a low-level queue as long as there arepackets in a higher-level queue, so that no packet is outputted(dequeued) from the queue #1 as long as there are packets in the queue#2, for example, and an algorithm that specifies an output ratio so thatpackets are outputted from the queues #2, #1, and #0 at a ratio of10:5:1, respectively, for example.

A processing procedure in the switch as the data communication controlapparatus will next be described with reference to FIG. 7. Processing ineach step will be described.

When an Ethernet data frame is received from each terminal in first stepS101, header information within the data frame (see FIG. 3) is obtainedin step S102.

In step S103, referring to the MAC table (see FIG. 4), output portinformation set in correspondence with a destination MAC addressobtained from the header information is obtained to determine an outputport to be applied to the received data frame.

In step S104 and step S105, a queue is determined from a priority tag inthe data frame on the basis of the priority table (see FIG. 5). Theexample shown in the flowchart is an example of processing in the caseof the priority table shown in FIG. 5. When the tag is one of 0, 1, and2, the processing proceeds to step S106, where the data frame isinputted (enqueued) into the queue 0. When the tag is one of 3, 4, and5, the processing proceeds to step S107, where the data frame isinputted (enqueued) into the queue 1. When the tag is other than 1 to 5,that is, either 6 or 7, the processing proceeds to step S108, where thedata frame is inputted (enqueued) into the queue 2.

Next, in step S109, a queue is selected according to the algorithmpreset in the scheduler. In step S110, a data frame is outputted(dequeued) from the selected queue. In step S111, the data frameoutputted from the queue is transmitted.

Processing of the switch as the data communication control apparatuswill next be described by illustrating an example of data communicationprocessing between terminals in the network configuration shown in FIG.2. FIG. 8 represents an example of data communication processing betweenterminals.

Consideration will be given to an environment in which there are threeflows, that is, a flow 0, a flow 1, and a flow 2 as data flows betweenterminals, as shown in FIG. 8.

The flow 0 is a communication from the terminal X 211 to the terminal Z213.

The flow 1 is a communication from the terminal Y 212 to the terminal Z213.

The flow 2 is a communication from the terminal B 232 to the terminal Z213.

When the switch 0, 201 at which the flows meet one another ensures QoSfor each flow, performing flow identification based on a port numberrequires a TCP/IP or UDP/IP header to be checked, as described above.This port number check processing requires reconstruction of a dataframe of a layer 3 (network layer, IP layer) and a layer 4 (transportlayer, TCP/UDP layer), as described above, thus increasing a processingload and delaying data transfer instead.

[Concrete Example of Communication Control Processing]

Description will next be made of an example of configuration in which acertain terminal within a network manages use of priority tags.

In a network configuration shown in FIG. 9, a terminal X 211, a terminalY 212, and a terminal Z 213 as communication terminal apparatus areconnected to ports of a switch 0, 201 as a data communication controlapparatus, and a terminal A 231, a terminal B 232, and a terminal C 233as a plurality of communication terminal apparatus are connected toports of a switch 1, 221 connected to a port of the switch 0, 201. Theterminals are connected to each other via the switches as communicationcontrol apparatus to communicate with each other.

The switch 0, 201 and the switch 1, 221 have the above-describedconfiguration of FIG. 1, and control transfer of data frames transmittedand received between the terminals. Further, the terminal A 231 is setas a tag managing terminal for managing use of tags in datacommunication within the network.

When the terminal X 211, the terminal Y 212, and the terminal B 232 areto transmit a flow (a flow 0, a flow 1, and a flow 2) that requires QoScontrol, for example, the terminal X 211, the terminal Y 212, and theterminal B 232 transmit a tag assignment request to the terminal A 231as the tag managing terminal set as a terminal for performing tagmanagement so that tags that do not conflict with each other areassigned.

Specifically, when a terminal is to transmit a flow requiring QoScontrol, as steps before a start of data flow transmission processing,the terminal transmits a tag assignment request to the tag managingterminal, receives an assigned tag as a response transmission, sets theassigned tag as a priority tag in tag control information (TCI) of anEthernet data frame, and then transmits the data frame to a destination.

The tag managing terminal has information on a number of priority queuesfor each output port possessed by each switch as a data communicationcontrol apparatus within a subnetwork and on set correspondences betweenIEEE802.1p priority tags and queue numbers; that is, the tag managingterminal has priority table information in each switch.

As shown in FIG. 10, for example, the tag managing terminal has a MACtable and priority table information of each switch as a datacommunication control apparatus within the subnetwork. The tag managingterminal generates a queue use state table (see FIG. 13) to be describedlater on the basis of these pieces of information, to perform tagassignment processing by determining a state of use of queues.Incidentally, while there is not necessarily a necessity for the tagmanaging terminal to be present in the subnetwork, the terminal A 231within the subnetwork is the tag managing terminal in the example ofnetwork configuration shown in FIG. 9.

The terminal X 211 and the terminal B 232 issue a tag assignment requestto the terminal A 231 as the tag managing terminal before transmittingthe flow 0 and the flow 1 requiring priority control, and then arenotified of a useable tag.

A flow of processing on a terminal side that actually performscommunication in this case will be described with reference to aflowchart of FIG. 11.

A terminal that intends to perform priority processing, for examplecommunication processing for a QoS-guaranteed data flow transmits a tagassignment request to the tag managing terminal in step S201. The tagassignment request includes a source node identifier as a terminalidentifier of the terminal itself and a destination node identifier asan identifier of a destination terminal to which to transmit a dataframe.

In step S202, the terminal receives a response transmission indicatingsuccessful assignment or failed assignment from the tag managingterminal. In step S203, the terminal determines whether the responsetransmission indicates successful tag assignment or failed tagassignment.

When the response transmission indicates successful tag assignment, theterminal sets an assigned tag in a priority tag field in tag controlinformation (TCI) of the transmitting data frame, and then transmits thedata frame in step S204. On the other hand, when the determination instep S203 is No, that is, when the terminal receives the responseindicating failed tag assignment from the tag managing terminal, theprocessing proceeds to step S205, where the terminal performscommunication with an arbitrarily set tag that does not ensure QoS, ormakes the tag assignment request to the tag managing terminal again.

Processing of the tag managing terminal on the other hand will bedescribed with reference to a flowchart of FIG. 12. The tag managingterminal receives a tag assignment request from a terminal that intendsto perform QoS-guaranteed data communication in step S301. The tagassignment request includes a source node identifier as a terminalidentifier of the terminal that has transmitted the tag assignmentrequest, and a destination node identifier as an identifier of adestination terminal to which to transmit a data frame.

When receiving the tag assignment request, the tag managing terminalrefers to a queue use state table stored within the managing terminal instep S302. An example of the queue use state table is shown in FIG. 13.The queue use state table manages a state of use of queues within thesubnetwork, for example, managed by the tag managing terminal, and isthus formed as a table associating destination nodes (data transmissiondestination terminals) and source nodes (data transmission sourceterminals) performing communication, and used queues with each other asshown in FIG. 13. These are generated on the basis of the MAC table andpriority table information of each communication control apparatus(switch), and updated sequentially on the basis of network statemonitoring information or tag information assigned by the tag managingterminal itself.

The example of the queue use state table shown in FIG. 13 corresponds tothe network configuration shown in FIG. 9, in which there are sixterminals in the subnet and there are three queues for each port. Thusthere are entries of 6×3=18 rows. However, since a best effort flow forwhich priority control is not performed uses 0 as an IEEE802.1p prioritytag, a queue [0] causes a possibility of conflict with another flow.Therefore the queue [0] cannot be assigned to a QoS-guaranteed dataflow. Thus a queue [1] or a queue [2] is assignable to a QoS-guaranteeddata flow.

An output port used for each communication can be uniquely identified bythe MAC table described earlier with reference to FIG. 4. The queue usestate table shown in FIG. 13 is updated sequentially according to usedqueues at the identified output port.

When receiving the tag assignment request from the terminal, the tagmanaging terminal determines whether or not a QoS-ensuring queue can beassigned to an output port applied to communication on the basis of thequeue use state table shown in FIG. 13 and information of the sourcenode identifier as the terminal identifier of the terminal that hastransmitted the tag assignment request and the destination nodeidentifier as the identifier of the destination terminal to which totransmit a data frame. Specifically, when a QoS-ensuring exclusive queue(for example the queue [1] or [2]) is empty at the output port appliedto communication, the tag managing terminal determines that the queuecan be set as an exclusive queue for QoS-guaranteed data communication.On the other hand, when the QoS-ensuring exclusive queues are alreadyused, the tag managing terminal determines that the queues cannot be setas an exclusive queue for QoS-guaranteed data communication.

The tag managing terminal assigns an IEEE802.1p priority tag number 5(corresponding to the queue number [1]) and an IEEE802.1p priority tagnumber 7 (corresponding to the queue number [2]) to the terminal X, 211and the terminal B, 232, respectively. The tag managing terminal updatesthe table accordingly. The correspondences between the queues and thepriority tags are determined on the basis of the priority table (seeFIG. 5).

That is, the tag managing terminal has priority table informationassociating priority tags with output queues, which information isretained by a communication control apparatus within the managednetwork. The tag managing terminal extracts a priority tag that can beset corresponding to a queue selected in the queue use state table onthe basis of the priority table, and then sets the extracted prioritytag as an assigned tag.

The queue use state table shown in FIG. 13 has table data updated as aresult of the assignment of the IEEE802.1p priority tag number 5(corresponding to the queue number [1]) and the IEEE802.1p priority tagnumber 7 (corresponding to the queue number [2]) to the terminal X, 211and the terminal B, 232, respectively. The queue use state tableindicates that communication from the terminal X to the terminal Z isbeing performed using the queue [1] at the output port used for thecommunication, and that communication from the terminal B to theterminal Z is being performed using the queue [2] at the output portused for the communication.

Thus, when tag assignment is possible (Yes in step S303), the tagmanaging terminal updates the queue use state table as described abovein step S304, and transmits assigned tag information to the terminalthat has made the tag assignment request in step S305.

On the other hand, for example in a case where various communicationsare being performed within the subnetwork, a tag assignment request ismade from a terminal, and a QoS-ensuring exclusive queue (for example aqueue [1] or [2]) at an output port to be used for the communication isalready used for another communication, the tag managing terminaldetermines that tag assignment is not possible (No in step S303), andproceeds to step S306 to transmit a notification of failed tagassignment processing to the terminal that has made the tag assignmentrequest.

When a terminal that has made a tag assignment request receives anotification of successful tag assignment from the tag managingterminal, the terminal sets an assigned tag in a priority tag fieldwithin tag control information (TCI) of a transmitting data frame, andthen transmits the data frame, whereby QoS-guaranteed communication ismade possible. That is, it is possible to use an exclusive queue in aswitch as a communication control apparatus, and thereby performcommunication without being affected by other flows.

Further, since different IEEE802.1p priority tags can be attached fordifferent receiving terminals, a flow 2 from the terminal A, 231 to theterminal C, 233 as shown in FIG. 14 can be assigned the same IEEE802.1ppriority tag number [7] as a flow 1 from the terminal B, 232 to theterminal Z, 213.

Further, as is the case with the terminal A, 231 shown in this example,the tag assigning terminal itself can be a communication terminal. FIG.15 shows a queue use state table after this assignment. When a requestfor a new flow (flow 3) from the terminal Y, 212 to the terminal Z, 213is made in the network shown in FIG. 16, and a tag assignment request ismade from the terminal Y, 212 to the terminal A, 231 as the tag managingterminal, the tag managing terminal refers to the queue use state table,and determines that there is no assignable queue left. The tagassignment thus fails, and a notification of failed tag assignment istransmitted from the terminal A, 231 as the tag managing terminal to theterminal Y, 212.

In this case, the terminal Y, 212 can choose to perform communication ofthe flow 3 as a normal best effort flow or not to perform thecommunication when priority control cannot be executed, for example.These choices depend on determination of an application in each terminalor of the terminal.

Thus, tag management at a specific terminal can prevent occurrence of aduplicate tag for a specific output port, and thus prevent concentratedaccumulation of data flows in a specific queue of a specific output portin a communication control apparatus such as a switch or the like. It istherefore possible to perform efficient data flow transfer processingand realize QoS-guaranteed data transfer processing. A communicationcontrol apparatus such as a switch or the like can eliminate duplicateuse of a queue only by enqueuing data flows on the basis of tags set bythe tag managing terminal using the priority table associating only tagsand queues with each other.

The switch 0, 201 as a data communication control apparatus uses anIEEE802.1p priority tag, which is a priority identifier of an IEEE802.3(Ethernet) frame, as a flow identifier. That is, the switch as the datacommunication control apparatus identifies the flow only by checking anEthernet frame header.

The switch as the data communication control apparatus identifies aplurality of flows on the basis of the three-bit priority tag: 000 to111 in the tag control information attached to the Ethernet data framedescribed earlier with reference to FIG. 3.

In a conventional configuration, IEEE802.1p priority tags can beattached freely by respective transmitters, and hence there is apossibility of duplicate use of a queue. In the configuration accordingto the present invention, however, tags set by the tag managing terminalare used as IEEE802.1p priority tags, so that contention for queues iseliminated and thus QoS-guaranteed data communication is made possible.

FIG. 17 shows a configuration of a transfer queue formed in a switch asa data communication control apparatus. As shown in FIG. 17, thetransfer queue has a plurality of queues #0 to #n set therein whichqueues correspond to eight priority tags 0 [000] to 7 [111]. The numberof queues can be set as an arbitrary number.

An input selector 501 selects one of the plurality of queues: the queues#0 to #n, into which to input (enqueue) a data frame (packet). The inputselector 501 inputs (enqueues) the data frame (packet) into the inputqueue determined on the basis of values of a priority table 502 (seeFIG. 5) in which queues are associated with tags. Incidentally, a flowidentification processing unit (Forwarder) 503 may refer to the prioritytable 502 so that the input selector 501 inputs (enqueues) an inputpacket into each queue on the basis of input queue informationdetermined by the flow identification processing unit (Forwarder) 503.

As described with reference to FIG. 5, the priority table 502 enables aninput queue to be uniquely determined on the basis of a tag stored in adata frame of each flow. The input selector 501 determines the tag ofthe data frame, selects the input queue by referring to the prioritytable 502, and then inputs (enqueues) the data frame (packet) into theselected queue.

On the other hand, an output selector 511 sends a queue state indicatinghow many data frames (packets) are in which queue, for example, to ascheduler 512. The scheduler 512 sequentially determines a next outputqueue according to a preset algorithm, and notifies this to the outputselector 511. The output selector 511 extracts a data frame (packet)from the queue specified by the scheduler 512, and then outputs the dataframe (packet) via the interface 101 under control of the control unit102 (see FIG. 1).

The scheduler 512 has, as a parameter, frequency of output of packetsfrom each queue. Algorithms applicable for selecting an output queueinclude for example an algorithm that does not select a low-level queueas long as there are packets in a higher-level queue, so that no packetis outputted (dequeued) from the queue #1 as long as there are packetsin the queue #2, for example, and an algorithm that specifies an outputratio so that packets are outputted from the queues #2, #1, and #0 at aratio of 10:5:1, respectively, for example.

However, for processing on a queue storing a QoS-providing data flow,that is, a queue storing a data flow to be subjected to priorityprocessing, for example, there are parameters such as “token generationinterval”, “bucket depth”, “token bucket peak rate”, “minimum handlingsize”, “maximum datagram size” and the like as shown in RFC 2215supposing a token bucket algorithm. The scheduler 512 selects a queue tooutput a packet on the basis of these parameters, and notifies theoutput selector 511 of the queue. The output selector outputs the packetaccording to scheduling set by the scheduler 512.

The present invention has been explained above in detail with referenceto a specific embodiment. However, it is obvious that those skilled inthe art can make modifications and substitutions in the embodimentwithout departing from the spirit of the present invention. That is, thepresent invention has been disclosed in a form that is illustrative andis not to be construed as restrictive. In order to understand the spiritof the present invention, a section of claims described at the beginninghereof is to be considered.

It is to be noted that the series of processes described in thespecification can be carried out by hardware or software, or a compositeconfiguration of both. When a process is to be carried out by software,the process can be carried out by installing a program having a processsequence recorded therein into a memory within a computer incorporatedin special hardware, or installing the program onto a general-purposepersonal computer that can perform various functions.

For example, the program can be recorded in advance on a hard disk or ina ROM (Read Only Memory) as a recording medium. Alternatively, theprogram can be stored (recorded) temporarily or permanently on aremovable recording medium such as a flexible disk, a CD-ROM (CompactDisc Read Only Memory), an MO (Magneto optical) disk, a DVD (DigitalVersatile Disc), a magnetic disk, a semiconductor memory or the like.Such a removable recording medium can be provided as so-called packagedsoftware.

Incidentally, in addition to being installed from a removable recordingmedium as described above onto a computer, the program can betransferred from a download site to a computer by radio, or transferredto a computer by wire via a network such as a LAN (Local Area Network),the Internet or the like, so that the computer receives the program thustransferred and then installs the program onto a recording medium suchas a built-in hard disk or the like.

It is to be noted that the various processes described in thespecification may be not only performed in time series in the describedorder but also performed in parallel or individually according toprocessing capability or requirement of an apparatus performing theprocesses.

INDUSTRIAL APPLICABILITY

As described above, the data communication system, and the datacommunication control apparatus and method according to the presentinvention set an IEEE802.1p priority tag as a priority identifier undercontrol of the tag managing terminal. The priority tag is set for a dataflow to be subjected to priority processing, for example, to beguaranteed QoS so as to prevent duplicate use of a queue in acommunication control apparatus such as a switch or the like connectedto the network. It is therefore possible to process the data flow to besubjected to priority processing without delay.

As described above, the data communication system, and the datacommunication control apparatus and method according to the presentinvention set an IEEE802.1p priority tag as a priority identifier undercontrol of the tag managing terminal. The priority tag is set for a dataflow to be subjected to priority processing, for example, to beguaranteed QoS so as to prevent duplicate use of a queue in acommunication control apparatus such as a switch or the like connectedto the network. The communication control apparatus such as the switchor the like connected to the network which apparatus executes datatransfer control can prevent duplicate queue setting for data flows tobe subjected to priority processing only by performing processing usinga priority table associating tags with queues. It is therefore possibleto perform reliable priority processing on the data flows to besubjected to priority processing.

1. A data communication system for executing data communication controlvia a network, comprising: a tag managing terminal apparatus forassigning a priority tag as information to be added to a data frame inresponse to a tag assignment request from a data transmission sourceterminal; a data transmission source terminal for transmitting the dataframe in which the priority tag assigned by said tag managing terminalapparatus is set as the information added to the data frame; and a datacommunication control apparatus for identifying a data flow on a basisof the priority tag as the information added to the data frame receivedfrom said data transmission source terminal, storing the data frame in aqueue selected in correspondence with the identified data flow, andoutputting the data frame stored in the queue according to apredetermined schedule.
 2. The data communication system as claimed inclaim 1, wherein said tag managing terminal apparatus has a queue usestate table that associates a data communication destination nodeidentifier, a data transmission source node identifier, and a queueidentifier in the data communication control apparatus with each other,and which enables determination of a state of use of queues in the datacommunication control apparatus within the managed network, and inresponse to the request from said data transmission source terminal,said tag managing terminal apparatus refers to said queue use statetable, and sets a priority tag corresponding to a queue different from aused queue as the assigned tag.
 3. The data communication system asclaimed in claim 2, wherein said tag managing terminal apparatus haspriority table information associating priority tags with output queues,said priority table information being retained by the communicationcontrol apparatus within the managed network, and said tag managingterminal apparatus extracts a priority tag that can be set incorrespondence with a queue selected in said queue use state table on abasis of a priority table, and sets the extracted priority tag as theassigned tag.
 4. The data communication system as claimed in claim 2,wherein the tag assignment request from said data transmission sourceterminal includes a data communication destination node identifier and adata transmission source node identifier; and on a basis of the datacommunication destination node identifier and the data transmissionsource node identifier included in the tag assignment request, said tagmanaging terminal apparatus refers to said queue use state table, andsets a priority tag corresponding to a queue different from a used queueas the assigned tag.
 5. The data communication system as claimed inclaim 1, wherein the data frame transmitted by said data transmissionsource terminal is a data frame defined in IEEE802.3; and said datacommunication control apparatus identifies the data flow on a basis of apriority tag stored in the IEEE802.3 data frame.
 6. A data communicationmanaging apparatus for executing data communication control processingvia a network, wherein a priority tag as information to be added to adata frame is assigned in response to a tag assignment request from adata transmission source terminal.
 7. The data communication managingapparatus as claimed in claim 6, wherein said data communicationmanaging apparatus has a queue use state table that associates with eachother a data communication destination node identifier, a datatransmission source node identifier, and a queue identifier in a datacommunication control apparatus for executing data transfer controlwithin the network, and which enables determination of a state of use ofqueues in the data communication control apparatus within the managednetwork, and in response to the request from said data transmissionsource terminal, said data communication managing apparatus refers tosaid queue use state table, and sets a priority tag corresponding to aqueue different from a used queue as the assigned tag.
 8. The datacommunication managing apparatus as claimed in claim 7, wherein saiddata communication managing apparatus has priority table informationassociating priority tags with output queues, said priority tableinformation being retained by the communication control apparatus withinthe managed network, and said data communication managing apparatusextracts a priority tag that can be set in correspondence with a queueselected in said queue use state table on a basis of a priority table,and sets the extracted priority tag as the assigned tag.
 9. The datacommunication managing apparatus as claimed in claim 7, wherein on abasis of a data communication destination node identifier and a datatransmission source node identifier included in the tag assignmentrequest, said data communication managing apparatus refers to said queueuse state table, and sets a priority tag corresponding to a queuedifferent from a used queue as the assigned tag.
 10. The datacommunication managing apparatus as claimed in claim 6, wherein the dataframe transmitted by the data transmission source terminal is a dataframe defined in IEEE802.3; and said data communication managingapparatus sets a priority tag to be set in the IEEE802.3 data frame asthe assigned tag.
 11. A data communication control method for executingdata communication control via a network, said data communicationcontrol method, comprising: a tag assigning step in a tag managingterminal apparatus for assigning a priority tag as information to beadded to a data frame in response to a tag assignment request from adata transmission source terminal; a data transmitting step in a datatransmission source terminal for transmitting the data frame in whichthe priority tag assigned in said tag assigning step is set as theinformation added to the data frame; and a data communication controlstep in a data communication control apparatus for identifying a dataflow on a basis of the priority tag as the information added to the dataframe received from said data transmission source terminal, storing thedata frame in a queue selected in correspondence with the identifieddata flow, and outputting the data frame stored in the queue accordingto a predetermined schedule.
 12. The data communication control methodas claimed in claim 11, wherein on a basis of a queue use state tablethat associates a data communication destination node identifier, a datatransmission source node identifier, and a queue identifier in the datacommunication control apparatus with each other, and which enablesdetermination of a state of use of queues in the data communicationcontrol apparatus within the managed network, the tag assigning step insaid tag managing terminal apparatus sets a priority tag correspondingto a queue different from a used queue as the assigned tag in responseto the request from said data transmission source terminal.
 13. The datacommunication control method as claimed in claim 12, wherein on a basisof priority table information associating priority tags with outputqueues, said priority table information being retained by thecommunication control apparatus within the managed network, the tagassigning step in said tag managing terminal apparatus extracts apriority tag that can be set in correspondence with a queue selected insaid queue use state table, and sets the extracted priority tag as theassigned tag.
 14. The data communication control method as claimed inclaim 12, wherein the tag assignment request from the data transmissionsource terminal includes a data communication destination nodeidentifier and a data transmission source node identifier; and on abasis of the data communication destination node identifier and the datatransmission source node identifier included in the tag assignmentrequest, the tag assigning step in said tag managing terminal apparatusrefers to said queue use state table, and sets a priority tagcorresponding to a queue different from a used queue as the assignedtag.
 15. The data communication control method as claimed in claim 11,wherein the data frame transmitted by the data transmission sourceterminal is a data frame defined in IEEE802.3; and the datacommunication control step in said data communication control apparatusidentifies the data flow on a basis of a priority tag stored in theIEEE802.3 data frame.
 16. A data communication managing method forexecuting data communication control processing via a network,comprising: a tag assigning process for assigning a priority tag asinformation to be added to a data frame is performed in response to atag assignment request from a data transmission source terminal.
 17. Thedata communication managing method as claimed in claim 16, whereinreferring to a queue use state table that associates with each other adata communication destination node identifier, a data transmissionsource node identifier, and a queue identifier in a data communicationcontrol apparatus for executing data transfer control within thenetwork, and which enables determination of a state of use of queues inthe data communication control apparatus within the managed network,said tag assigning process sets a priority tag corresponding to a queuedifferent from a used queue as the assigned tag in response to therequest from said data transmission source terminal.
 18. The datacommunication managing method as claimed in claim 17, wherein referringto priority table information associating priority tags with outputqueues, said priority table information being retained by thecommunication control apparatus within the managed network, said tagassigning process extracts a priority tag that can be set incorrespondence with a queue selected in said queue use state table, andsets the extracted priority tag as the assigned tag.
 19. The datacommunication managing method as claimed in claim 17, wherein on a basisof a data communication destination node identifier and a datatransmission source node identifier included in the tag assignmentrequest, said tag assigning process refers to said queue use statetable, and sets a priority tag corresponding to a queue different from aused queue as the assigned tag.
 20. The data communication managingmethod as claimed in claim 16, wherein said tag assigning process sets apriority tag to be set in an IEEE802.3 data frame as the assigned tag.21. A computer program as a program for executing data communicationcontrol processing via a network, comprising: a step for receiving a tagassignment request from a data transmission source terminal; a step forreferring to a queue use state table that associates with each other adata communication destination node identifier, a data transmissionsource node identifier, and a queue identifier in a data communicationcontrol apparatus for executing data transfer control within thenetwork; and a step for setting a priority tag corresponding to a queuedifferent from a used queue as an assigned tag on a basis of data storedin said queue use state table.